package com.niit.session13;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DateParse {
	public static void main(String[] args) {
//		parse();
		try {
//			如果一个方法抛出了异常，在调用这个方法的时候就必须处理这个异常
			parse1();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
	
//	如果想把异常抛出去可以在方法定义的后面使用throws关键字，把异常抛出去给调用方
	public static void parse1() throws ParseException{
		String strDate = "2023-03-21 10-45:00";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date parse = sdf.parse(strDate);
		System.out.println(parse);
		
	}
	
	public static void parse() {
		Scanner sc = new Scanner(System.in);
		String strDate = "2023-03-21 10-45:00";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		try语句块用于包裹可能会发生错误的代码
		try {
			System.out.println(1/0);
			Date parse = sdf.parse(strDate);
			System.out.println(parse);
//			catch语句块用于捕获异常，括号内写上要捕获的异常的名字，e是这个异常的对象名字
		}catch (ParseException e) {
//			打印错误消息
			System.out.println(e.getMessage());
//			打印堆栈信息，也就是经常看到的红色的报错
			e.printStackTrace();
//			catch语句块可以写多个，异常类直接也会有继承关系，如果有多个异常需要捕获，父类必须写在子类的后面
		}catch (ArithmeticException e) {
			System.out.println(e.getMessage());
		}
//			finally语句块，不管try语句块中的代码是否正常执行，都会执行finally语句块
		finally {
			sc.close();
			System.out.println("finally被执行了");
		}
	}

}
